home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 October: Mac OS SDK / Dev.CD Oct 96 SDK / Dev.CD Oct 96 SDK2.toast / Development Kits (Disc 2) / OpenDoc Development Framework / ODFDev / Table / Sources / Frame.h < prev    next >
Encoding:
Text File  |  1996-08-16  |  6.2 KB  |  206 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                Frame.h
  4. //    Release Version:    $ ODF 1 $ 
  5. //
  6. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #ifndef FRAME_H
  11. #define FRAME_H
  12.  
  13. // ----- TablePart Includes -----
  14.  
  15. #ifndef PART_H
  16. #include "Part.h"
  17. #endif
  18.  
  19. #ifndef CELL_H
  20. #include "Cell.h"
  21. #endif
  22.  
  23. #ifndef CONSTANT_H
  24. #include "Constant.h"
  25. #endif
  26.  
  27. // ----- ODF Includes -----
  28.  
  29. #ifndef FWDRGDRP_H
  30. #include "FWDrgDrp.h"
  31. #endif
  32.  
  33. #ifndef FWFRMING_H
  34. #include "FWFrming.h"
  35. #endif
  36.  
  37. #ifndef FWPRESEN_H
  38. #include "FWPresen.h"
  39. #endif
  40.  
  41. #ifndef FWRECSHP_H
  42. #include "FWRecShp.h"
  43. #endif
  44.  
  45. //========================================================================================
  46. //    Forward declarations
  47. //========================================================================================
  48.  
  49. class FW_CGraphicContext;
  50. class CTablePart;
  51. class CTableSelection;
  52. class CTableProxy;
  53. class CTableContent;
  54. class FW_CViewContext;
  55.  
  56. //========================================================================================
  57. //    class CTableFrame
  58. //========================================================================================
  59.  
  60. class CTableFrame : public FW_CEmbeddingFrame, public FW_MDraggableFrame, public FW_MDroppableFrame
  61. {
  62. //----------------------------------------------------------------------------------------
  63. //    Initialization/Destruction
  64. //
  65. public:
  66.   
  67.       FW_DECLARE_AUTO(CTableFrame)
  68.     
  69.     CTableFrame(Environment* ev, 
  70.                 ODFrame* odFrame, 
  71.                 FW_CPresentation* presentation, 
  72.                 CTablePart* tablePart,
  73.                 CTableContent* tableContent);
  74.     virtual ~ CTableFrame();
  75.     
  76. //----------------------------------------------------------------------------------------
  77. //    Inherited API
  78. //
  79. public:
  80.     // ----- Getters/Setters -----
  81.     CTablePart*                GetPart() const;
  82.     CTableSelection*        GetSelection(Environment* ev) const;
  83.     ETableLoc                GetDragLocation() const;
  84.     CCell                    GetDragCell() const;
  85.     CCell                    GetDragSourceCell() const;
  86.     
  87.     // ----- Focus change -----
  88.     virtual void            FocusStateChanged(Environment* ev, ODTypeToken focus, FW_Boolean newState, ODFrame* newOwner);
  89.  
  90.     // ----- Embedding -----
  91.     virtual ODFacet*        CreateEmbeddedFacet(Environment* ev,
  92.                                             ODFacet* embeddingFacet,
  93.                                             FW_MProxy* proxy,
  94.                                             ODFrame* embeddedFrame,
  95.                                             ODShape* proposedClipShape);
  96.     // ----- Rendering -----
  97.     virtual void             Draw(Environment* ev, 
  98.                                         ODFacet* odFacet, 
  99.                                         ODShape* invalidShape);
  100.  
  101.     // ----- Menus -----
  102.     virtual FW_Boolean        DoAdjustMenus(Environment* ev, FW_CMenuBar* menuBar, FW_Boolean hasMenuFocus, FW_Boolean isRoot);
  103.     virtual FW_Boolean        DoMenu(Environment* ev, const FW_CMenuEvent& theMenuEvent);
  104.  
  105.     // ----- Events -----
  106.     virtual FW_Boolean        DoVirtualKey(Environment* ev, const FW_CVirtualKeyEvent& theVirtualKeyEvent);
  107.     virtual FW_Boolean        DoMouseDown(Environment* ev, const FW_CMouseEvent& theMouseEvent);
  108.     virtual FW_Boolean        DoMouseDownInEmbeddedFrameBorder(Environment* ev, const FW_CBorderMouseEvent& theBorderMouseEvent);
  109.     virtual void            DoActivateEvent(Environment* ev, const FW_CActivateEvent& theActivateEvent);
  110.     
  111.     // ----- Adjust Cursor -----
  112.     virtual FW_Boolean        AdjustCursor(Environment* ev, ODFacet* odFacet, const FW_CPoint& where);
  113.  
  114.     // ----- Views & Geometry -----
  115.     virtual void             CreateSubViews(Environment* ev);
  116.     virtual void             FrameShapeChanged(Environment* ev);
  117.  
  118.     // ----- Drag And Drop -----
  119.     virtual ODDragResult    CanAcceptDrop(Environment *ev, ODDragItemIterator* dragInfo);
  120.     virtual FW_CDropTracker* NewDropTracker(Environment *ev, FW_CView* view, ODFacet* facet);
  121.  
  122.     virtual FW_CDragCommand* NewDragCommand(Environment *ev, 
  123.                                             FW_CFrame* theFrame,
  124.                                             const FW_CMouseEvent& theMouseEvent);
  125.     virtual FW_CDropCommand* NewDropCommand(Environment *ev,
  126.                                             FW_CFrame* frame,
  127.                                             ODDragItemIterator* dropInfo, 
  128.                                             ODFacet* odFacet, 
  129.                                             const FW_CPoint& dropPoint);
  130.  
  131.     virtual FW_CClipboardCommand* NewClipboardCommand(Environment* ev, ODCommandID commandID);
  132.  
  133.     virtual FW_CInsertCommand*    NewInsertCommand(Environment* ev, const FW_PFileSpecification& fileSpec);
  134.  
  135.     virtual FW_Boolean        Drag(Environment* ev, const FW_CMouseEvent& event);
  136.  
  137.     // ----- Linking -----
  138.     virtual void            FacetAdded(Environment* ev, ODFacet* facet, unsigned short facetCount);
  139.     virtual void            ShowPartInfo(Environment* ev);
  140.     virtual FW_Boolean        RevealFrame(Environment *ev, 
  141.                                         ODFrame* embeddedFrame, 
  142.                                         ODShape* revealShape);
  143.  
  144. //----------------------------------------------------------------------------------------
  145. //    New API
  146. //
  147. public:
  148.     void            DrawGrid(Environment* ev, FW_CGraphicContext& gc, FW_Boolean gray);
  149.     void            HideShowGrid(Environment* ev);
  150.  
  151.     FW_Boolean        IsGridShown(Environment* ev) const
  152.                         {return fGridShown;}
  153.                         
  154.     void            GetRect(Environment* ev, FW_CRect& rect) const;
  155.  
  156.     void            DrawCellHilite(Environment* ev, 
  157.                                     FW_CViewContext& fc, 
  158.                                     const CCell& cell);
  159.     void            ChangeHiliteState(Environment* ev,
  160.                                     FW_Boolean state);
  161.  
  162.     void            ChangeEmbeddedFacetSelectState(Environment* ev, FW_Boolean state);
  163.  
  164.     void            MoveProxy(Environment* ev, CTableProxy* proxy, const CCell& destCell);
  165.  
  166.     // ----- Hit testing -----
  167.     ETableLoc        HitTest(Environment* ev, 
  168.                               const FW_CPoint& where,
  169.                               CCell& cell) const;
  170.                               
  171.     // ----- Mouse down response -----
  172.     FW_Boolean        Resize(Environment* ev, 
  173.                            const FW_CMouseEvent& theMouseEvent,
  174.                            const CCell& cell,
  175.                            ETableLoc tl);
  176.  
  177.     void            SelectCell(Environment* ev, const CCell& cell);
  178.  
  179. //----------------------------------------------------------------------------------------
  180. //    Data Members
  181. //
  182. protected:
  183.     // ----- Part back-pointer -----
  184.     CTablePart*        fTablePart;
  185.     CTableContent*    fTableContent;
  186.     
  187.     // ----- Drag & drop state variables -----
  188.     CCell            fDraggedCell;
  189.     
  190.     FW_Boolean        fGridShown;
  191.     
  192.     FW_CRectShape    fSelectFrame;
  193.     FW_Boolean         fHiliteState;
  194. };
  195.  
  196.  
  197. //----------------------------------------------------------------------------------------
  198. //    CTableFrame::GetPart
  199. //----------------------------------------------------------------------------------------
  200. inline CTablePart* CTableFrame::GetPart() const
  201. {
  202.     return fTablePart;
  203. }
  204.  
  205. #endif
  206.